package router

import (
	"getaway/basic/config"
	"getaway/handler/api"
	"getaway/middleware"
	"github.com/gin-gonic/gin"
)

func Financial(v1 *gin.RouterGroup) {
	financial := v1.Group("/financial")
	{
		financial.Use(middleware.JWTAuth(config.KEY_JWT))

		// 财务对账相关接口
		financial.GET("/reconciliation", api.GetFinancialReconciliation)                 // 获取财务对账数据
		financial.POST("/export", api.ExportFinancialReconciliation)                     // 导出财务对账数据
		financial.POST("/getExportProgress", api.GetExportProgress)                      // 获取导出进度
		financial.GET("/getExportTaskFinancialStatus", api.GetExportTaskFinancialStatus) // 获取导出任务状态
		financial.GET("/getExportTaskList", api.GetExportTaskList)                       // 获取导出任务列表
		financial.POST("/deleteExportTask", api.DeleteExportTask)                        // 删除导出任务
		financial.POST("/downloadExportFile", api.DownloadExportFile)                    // 下载导出文件

		// 交易详情相关接口
		financial.GET("/transaction/details", api.GetTransactionDetails)   // 获取交易详情列表
		financial.GET("/transaction/detail", api.GetTransactionDetailById) // 获取单条交易详情

		// 账单管理相关接口
		billing := financial.Group("/billing")
		{
			billing.POST("/generate", api.GenerateBilling) // 生成账单
			billing.GET("/list", api.GetBillingList)       // 获取账单列表
			billing.GET("/details", api.GetBillingDetails) // 获取账单明细
			billing.POST("/confirm", api.ConfirmBilling)   // 确认账单
		}

		// 异常交易相关接口
		abnormal := financial.Group("/abnormal")
		{
			abnormal.POST("/detect", api.DetectAbnormalTransactions)  // 检测异常交易
			abnormal.GET("/list", api.GetAbnormalTransactions)        // 获取异常交易列表
			abnormal.POST("/process", api.ProcessAbnormalTransaction) // 处理异常交易
		}

		// 争议管理相关接口
		dispute := financial.Group("/dispute")
		{
			dispute.POST("/create", api.CreateDispute)         // 创建争议
			dispute.POST("/resolve", api.ResolveDispute)       // 解决争议
			dispute.GET("/records", api.GetDisputeRecords)     // 获取争议记录
			dispute.POST("/resolution", api.DisputeResolution) // 争议解决
		}

		// 综合验证相关接口
		financial.POST("/validation", api.ComprehensiveValidation) // 综合验证

		// 异常处理相关接口
		exception := financial.Group("/exception")
		{
			exception.GET("/summary", api.GetExceptionSummary)   // 获取异常摘要
			exception.POST("/auto-fix", api.AutoDetectAndFix)    // 自动检测和修复
			exception.POST("/manual-process", api.ManualProcess) // 人工处理
		}
	}
}
